# 有一个列表lst = [1,4,9,16,2,5,10,15]，生成一个新列表，要求新列表元素是lst相邻2项的和

#方法1：
list1 = [1,4,9,16,2,5,10,15]
list2 = []
for i in range(len(list1) -1):
    list2.append(list1[i]+list1[i+1])
print(list2)

#方法2:
list1 = [1,4,9,16,2,5,10,15]
print([list1[i]+list1[i+1] for i in range(len(list1) - 1)])

# 随机生成20个[1, 20]的正整数，统计每个数字出现的次数，排序并降序输出次数最多的前三个数字及次数
import random
list1 = [random.randint(1,20) for i in range(20)]
print('list1列表的值为：{}'.format(list1))
list2 = {}
for i in list1:
    dict1 = list1.count(i)
    list2[i] = dict1
    list3 = sorted(list2.items(), key=lambda item: item[1], reverse=True)
print('list2字典的值为：{}'.format(list2))
print('lisr2字典降序输出最多的前三个数字以及次数为：{}'.format(list3[:3]))

# 随机生成100个产品ID，ID格式如下
# # 顺序的数字6位，分隔符点号，10个随机小写英文字符
# # 举例，000005.xcbaaduixy
import random
alp = [chr(i) for i in range(97,123)]
for i in range(1, 101):
    zim = ''
    nums = "%06d" % (i)
    for i in range(10):
        for j in random.choice(alp):
            zim += j
    print('{}.{}'.format(nums, zim))

# 字符串重复统计
# # 字符表'abcdefghijklmnopqrstuvwxyz'
# # 随机挑选2个字母组成字符串，共挑选100个
# # 降序输出所有不同的字符串及重复的次数
import random
zifu1 = 'abcdefghijklmnopqrstuvwxyz'
list4 = []
list5 = {}
for k in range(100):
    zifu2 = ''
    for i in range(2):
        for j in random.choice(zifu1):
            zifu2 += j
    list4.append(zifu2)
    cishu = list4.count(zifu2)
    list5[zifu2] = cishu
    list6 = sorted(list5.items(), key=lambda item: item[1], reverse=True)
print(list6)


# 做得很不错
